package com.dys.methodology;

/**
 * @className: com.dys.methodology.MethodTest
 * @description: 方法的定义、调用、重载
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/06/20 下午10:10
 */
public class MethodTest {

    public static void main(String[] args) {
        // 1.求10+20的结果
        // int num1 = 10;
        // int num2 = 20;
        // int sum1 = 0;
        // sum1+=num1;
        // sum1+=num2;
        // 方法的调用处(用方法)
        int sum1 = add(10, 10);
        System.out.println("sum1 = " + sum1);

        // 2.求40+50的结果
        // int num3 = 40;
        // int num4 = 50;
        // int sum2 = 0;
        // sum2+=num3;
        // sum2+=num4;
        int sum2 = add(40, 50);
        System.out.println("sum2 = " + sum2);

        // 3.求60+90的结果
        // int num5 = 60;
        // int num6 = 90;
        // int sum3 = 0;
        // sum3+=num5;
        // sum3+=num6;
        int sum3 = add(60, 90);
        System.out.println("sum3 = " + sum3);
        add2(11, 22);
    }

    /**
     * 1.方法是什么？对特定功能进行提取，形成代码片段，这个代码片段就是方法
     * 2.方法和方法是并列关系，所以我们定义的方法不能写到main()方法中
     * 3.方法的定义：[访问修饰符1 访问修饰符2] 方法返回值类型 方法名(形参列表){
     * 方法体;
     * return 方法返回值;
     * }
     * 4.方法的作用：提高代码的复用性
     * 5.总结：访问修饰符：public、protected、private、default、static、final等
     * 方法返回值类型：可以是基本数据类型，也可以是引用数据类型
     * 方法名，见名知意，首字母小写
     * 尽量使用英文、形参列表：方法定义的时候需要的形式参数-->传入几个参数、什么类型基本确定了
     * 实际参数：方法调用时，传入的具体参数
     * 方法体：具体的业务逻辑代码
     * return+方法返回值，将返回值返回到方法的调用处。方法没有返回值，return可以省略，类型为void
     * 需要注意什么？形参列表要怎么写？定义几个参数？分别是什么类型的？
     * 方法到底需不需要返回值？如果需要的话，返回值的类型是什么？
     * 方法的调用需要注意什么？实际参数如何传？传递几个参数？传入什么类型的？方法是否有返回值需要接收？
     *
     * @param num1 形参数1
     * @param num2 形参数2
     */
    private static int add(int num1, int num2) {
        int sum = 0;
        sum += num1;
        sum += num2;
        // 将返回值返回到方法的调用处
        return sum;
    }

    private static void add2(int num1, int num2) {
        int sum = 0;
        sum += num1;
        sum += num2;
        System.out.println("sum = " + sum);
    }
}
